package org.jaaksi.util.sysbartint;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.widget.LinearLayout;
import org.jaaksi.util.sysbartint.util.SystemBarTintManager;

/**
 * Created by Fcy on 2016/1/13.
 */
public abstract class BaseActivity extends FragmentActivity
{
	protected SystemBarTintManager tintManager;
	/**
	 * 颜色中可以包含透明度
	 */
	// protected int resColor = R.color.bg_title;
	protected int barColor = Color.parseColor("#39ac6a");
	/**
	 * 默认完全不透明
	 */
	protected float alpha = 1;

	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		tintManager = new SystemBarTintManager(this);
		tintManager.setStatusBarTintEnabled(true);
	}

	/**
	 * 是否全屏显示内容，内容显示在通知栏中，不是真正的全屏（通知栏还在）
	 * 
	 * @return
	 */
	protected abstract boolean isFull();

	@Override
	public void setContentView(int layoutResID)
	{
		if (isFull())
		{ // 浸没式
			tintManager.setStatusBarTintColor(Color.TRANSPARENT);
			super.setContentView(layoutResID);
		}
		else
		{ // 在颜色中包含透明度即可
			tintManager.setStatusBarTintColor(barColor);
			// api 11
			// tintManager.setStatusBarAlpha(alpha);
			super.setContentView(R.layout.lib_root_container);
			LinearLayout container = (LinearLayout) findViewById(
			        R.id.root_container);
			LayoutInflater.from(this).inflate(layoutResID, container);
		}

	}

	/**
	 * 在super之前调用
	 *
	 * @param resColor
	 *            color资源id
	 */
	protected void setSysBarTintColor(int resColor)
	{
		barColor = getResources().getColor(resColor);
	}

	protected void setSysBarTintAlpha(float alpha)
	{
		this.alpha = alpha;
	}

	// /**
	// * 全屏显示（显示在通知栏中），api19以上有效
	// *
	// * @param on 是否开启
	// */
	// @TargetApi(19)
	// private void setTranslucentStatus(boolean on) {
	// if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT)
	// return;
	//
	// Window win = getWindow();
	// WindowManager.LayoutParams winParams = win.getAttributes();
	// final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
	// if (on) {
	// winParams.flags |= bits;
	// } else {
	// winParams.flags &= ~bits;
	// }
	// win.setAttributes(winParams);
	// }
}
